auto()
var thread1 = threads.start(function () {
    threads_method()
});




try {
    // 可能会出错的代码
    someFunctionThatMightFail();
    // console.log("Result:", result);
} catch (error) {
    // 处理错误的代码
    console.error("异常退出……………………………………………………:", error);
} finally {
    // 无论是否出错，都会执行的代码
    back()
    sleep(1000)
    back()
    sleep(1000)
    back()
    sleep(1000)
    back()
    console.log("程序结束停止所有脚本-----——————————————————————-----");
    threads.shutDownAll()
    // 这里可以放置清理资源的代码，比如关闭文件、释放网络连接等。
}




function someFunctionThatMightFail() {
    home()
    sleep(2000)
    打开快手()
    去赚钱()
    签到()
    去观看()
}
function 打开快手() {
    launchApp("快手极速版");
    sleep(2000)
    var 首页 = textContains("首页").findOne(2000)
    if (!首页) {
        click("快手极速版")
        sleep(2000)
        var 首页1 = textContains("首页").findOne(2000)
        if (!首页1) {
            click(139, 1359)
            sleep(2000)
            var 首页2 = textContains("首页").findOne(2000)
            if (!首页2) {
                console.log("打开快手失败***********************8");
                threads.shutDownAll()
            } else {
                log("22222打开快手成功###")
            }
        } else {
            log("11111打开快手成功###")
        }
    } else {
        log("0000打开快手成功###")
    }
}

function 去赚钱() {
    sleep(2000)
    var 去赚钱 = textContains('去赚钱').findOne(2000)
    if (去赚钱) {
        console.log('去赚钱', 去赚钱)
        var x = 去赚钱.bounds().centerX()
        var y = 去赚钱.bounds().centerY()
        console.log('去赚钱x', x)
        console.log('去赚钱y', y)
        click(Number(x), Number(y))

    } else {
        console.log("去赚钱失败***********************8");
        threads.shutDownAll()
    }


}
function 领红包() {
    swipe(500, 1500, 500, 500, 200)
    var 领红包 = textContains('领红包').findOne(2000)
    console.log(领红包)
    if (领红包) {
        click(Number(领红包.bounds().centerX()), Number(领红包.bounds().centerY()))
        sleep(1000)
        var 开心收下 = textContains('开心收下').findOne(2000)
        if (开心收下) {
            click(Number(开心收下.bounds().centerX()), Number(开心收下.bounds().centerY()))
        }
    }
}
function 签到() {
    sleep(3000)
    var 立即签到 = textContains('立即签到').findOne(3000)
    log("立即签到", 立即签到)
    if (立即签到) {
        console.log('找到立即签到')
        click(Number(立即签到.bounds().centerX()), Number(立即签到.bounds().centerY()))
    } else {
        console.log('没有找到立即签到')
    }
    //领取奖励
    var 领取奖励 = textContains('领取奖励').findOne(3000)
    if (领取奖励) {
        console.log('开始领取奖励')
        click(Number(领取奖励.bounds().centerX()), Number(领取奖励.bounds().centerY()))
        sleep(1000)
        var 继续赚钱 = textContains('继续赚钱').findOne(10000)
        if (继续赚钱) {
            click(Number(继续赚钱.bounds().centerX()), Number(继续赚钱.bounds().centerY()))
            sleep(2000)
            去赚钱()
        }
    }
    //先去分享视频赚金币
    var 先去分享视频赚金币 = textContains('先去分享视频赚金币').findOne(2000)
    if (先去分享视频赚金币) {
        console.log('先去分享视频赚金币————————————')
        click(Number(先去分享视频赚金币.bounds().centerX()), Number(先去分享视频赚金币.bounds().centerY()))
        sleep(1000)
        分享视频()
    }
}


function 去观看() {
    sleep(6000)
    var 立即观看 = textContains('立即观看').findOne(2000)
    if (立即观看) {
        click(Number(立即观看.bounds().centerX()), Number(立即观看.bounds().centerY()))
    } else {
        swipe(273, 1255, 630, 342, 300)
        sleep(2000)
        var 去观看 = textContains('去观看').findOne(2000)
        click(Number(去观看.bounds().centerX()), Number(去观看.bounds().centerY()))
    }
    sleep(1000)
    var count = random(30, 40)
    for (var i = 0; i < count; i++) {
        var s = random(6000, 12000)
        // 下载软件()
        console.log('视频间隔时间', s)
        sleep(s)
        视频滑动()
        // var x1 = random(300, 500)
        // // console.log(x1)
        // var y1 = random(1100, 1400)
        // // console.log(y1)
        // var x2 = random(300, 500)
        // // console.log(x2)
        // var y2 = random(200, 400)
        // // console.log(y2)
        // swipe(x1, y1, x2, y2, random(200, 400)
    }
}


function 下载软件() {
    var desc = textContains("下载应用 立即体验").findOne(2000)
    if (desc) {
        log("需要下载的APP", desc)
        click(Number(desc.bounds().centerX()), Number(desc.bounds().centerY()))
        sleep(2000)
        var 立即下载 = textContains("立即下载").findOne(5000)
        if (立即下载) {
            log("开始下载APP****************")
            click(Number(立即下载.bounds().centerX()), Number(立即下载.bounds().centerY()))
        }

    }
}


function threads_method() {
    while (true) {
        if (textContains("以后再说").findOne(200)) {
            click("以后再说")
            console.log("以后再说");
        }
        if (textContains("关闭").findOne(200)) {
            click("关闭")
            console.log("关闭");
        }
        if (textContains("关闭").findOne(200)) {
            click("关闭")
            console.log("关闭");
        }
        if (textContains("取消").findOne(200)) {
            click("取消")
            console.log("取消");
        }
        if (textContains("保持关闭").findOne(200)) {
            click("保持关闭")
            console.log("保持关闭");
        }
        if (textContains("保持关闭").findOne(200)) {
            click("保持关闭")
            console.log("保持关闭");
        }
        //某个弹框
        var s = className("android.widget.ImageView").clickable(true).depth(6).findOne(200)
        if (s) {
            log("发现了某一个弹框+++++++++++++++++++++++")
            s.click()
        }
        var 存储权限 = textContains("你还没有开启本地存储权限，无法使用该功能").findOne(100)
        if (存储权限) {
            id("positive").text("好的").click()
        }
        var 始终允许 = textContains("始终允许").findOne(100)
        if (始终允许) {
            click(Number(始终允许.bounds().centerX()), Number(始终允许.bounds().centerY()))
        }
        if (textContains('新人14天签到得18元').findOne(200) && textContains('今日签到可领').findOne(200)) {
            click(997, 223)
            console.log("新人14天签到得18元");
        }

    }
}

function 视频滑动() {
    // 定义起点B和终点A
    var x1 = random(250, 450)
    var y1 = random(1600, 1400)
    var x2 = 0
    if (0 < Number(x1) - random(450, 550)) {
        x2 = Number(x1) - random(450, 550)
    }
    log("qqqqqqqqqqqqqqqqqqqq", x2)
    let A = { x: x2, y: Number(y1) - random(600, 800) };
    let B = { x: x1, y: y1 };

    // 计算控制点C（这里简单取A和B的中点，并稍微调整y坐标来形成弧形）
    let midX = (A.x + B.x) / 2;
    let midYAdjusted = (A.y + B.y) / 2 + (A.y - B.y) * 0.2; // 调整因子可以根据需要改变
    let C = { x: midX, y: midYAdjusted };

    // 定义生成贝塞尔曲线点的函数
    function quadraticBezier(t, p0, p1, p2) {
        let x = Math.pow(1 - t, 2) * p0.x + 2 * (1 - t) * t * p1.x + Math.pow(t, 2) * p2.x;
        let y = Math.pow(1 - t, 2) * p0.y + 2 * (1 - t) * t * p1.y + Math.pow(t, 2) * p2.y;
        return [x, y]; // 直接返回坐标数组
    }

    // 定义生成的点的数量
    let numPoints = 50;
    let step = 1 / numPoints; // 计算每一步的t值增量

    // 生成贝塞尔曲线上的点并存储为坐标数组
    let points = [];
    for (let t = 0; t <= 1; t += step) {
        if (t === 0) {
            points.push([B.x, B.y]); // 第一个点是B
        } else if (t === 1) {
            points.push([A.x, A.y]); // 最后一个点是A
        } else {
            points.push(quadraticBezier(t, B, C, A)); // 中间点
        }
    }

    // 输出生成的坐标点数组
    // console.log(points);
    gesture(150, points)
}
// 分享视频()
function 分享视频() {
    sleep(2000)
    var 分享至微信 = textContains("分享至微信").findOne(2000)

    if (分享至微信) {
        log("开始分享到微信", 分享至微信)
        click(Number(分享至微信.bounds().centerX()), Number(分享至微信.bounds().centerY()))
        sleep(4000)

        var 天道盟 = textContains("天道盟").findOne(5000)
        if (天道盟) {
            log("天道盟开始分享****************")
            click(Number(天道盟.bounds().centerX()), Number(天道盟.bounds().centerY()))
        }

    }
}